Scroll to navigation

std::ranges::adjacent_view::iterator::operator[](3) C++ Standard Libary std::ranges::adjacent_view::iterator::operator[](3)

NAME

std::ranges::adjacent_view::iterator::operator[] - std::ranges::adjacent_view::iterator::operator[]

Synopsis


constexpr auto operator[]( difference_type n ) const (since C++23)
requires ranges::random_access_range<Base>;


Returns an element at specified relative location.


Let current_ be an underlying array of iterators.


Equivalent to:


return __tuple_transform([&](auto& i) -> decltype(auto) { return i[n]; }, current_);

Parameters


n - position relative to current location

Return value


The element at displacement n relative to the current location.

Example

// Run this code


#include <ranges>
#include <tuple>


int main()
{
constexpr static auto v = {0, 1, 2, 3, 4, 5};
// └──┬──┘
// └─────────────────┐
constexpr auto view = v | std::views::adjacent<3>; // │
// ┌───────────────────┬──────────────┘
// │ ┌──┴──┐
static_assert(view[2] == std::tuple{2, 3, 4});
}

2024.06.10 http://cppreference.com